Circuit designers of multi-Gigabit systems face a number of challenges as advances in technology mandate increased performance in high-speed components. For example, chip-to-chip data rates have traditionally been constrained by the bandwidth of input/output (I/O) circuitry in each component. However, process enhancements (e.g., transistor bandwidth) and innovations in I/O circuitry have forced designers to also consider the effects of the transmission channels between the chips on which data is sent.
At a basic level, data transmission between components within a single semiconductor device or between two devices on a printed circuit board may be represented by the system 10 shown in FIG. 1A. In FIG. 1A, a transmitter 12 (e.g., a microprocessor) sends data over channel 16 (e.g., a copper trace on a printed circuit board or “on-chip” in a semiconductor device) to a receiver 14 (e.g., another processor or memory). When data is sent from an ideal transmitter 12 to a receiver 14 across an ideal (lossless) channel 16, all of the energy in a transmitted pulse will be contained within a single time cell or unit interval (UI).
However, real transmitters and real transmission channels do not exhibit ideal characteristics, and as mentioned above, the effects of transmission channels are becoming increasingly important in high-speed circuit design. Due to a number of factors, including, for example, the limited conductivity of copper traces, the dielectric medium of the printed circuit board (PCB), and the discontinuities introduced by vias, the initially well-defined digital pulse will tend to spread or disperse as it passes through the channel 16. This is shown in FIG. 1B. As shown, a single pulse of data 105a is sent by the transmitter 102 during a given UI (e.g., UI3). However, because of the effect of the channel 104, this data pulse becomes spread 105b over multiple UIs at the receiver 106, i.e., some portion of the energy of the pulse is observed outside of the UI in which the pulse was sent (e.g., in UI2 and UI4). This residual energy outside of the UI of interest may perturb a pulse otherwise occupying the neighboring UIs, in a phenomenon referred to as intersymbol interference (ISI). The degree of the distortion caused by ISI is ultimately quantifiable through an understanding of the transfer function, H(z), of the channel 16. One skilled in the art will recognize that the channel transfer function has here been defined by the Z-transform. While in general the physical channel transfer characteristics are most accurately defined in the S-domain (Laplace domain), the discrete time nature of the methods to be described in this application are more readily addressed in terms of the discrete time Z-transform, and it is therefore more appropriate to discuss the channel characteristics in the same format for compatibility.
One known means for neutralizing the deleterious effects of channel-induced ISI comprises the use of a Discrete Time Filter (DTF) 13 on the transmitter 12 side of the system. The DTF 13 essentially pre-processes the data stream 11 of bits prior to the bits being driven onto the channel 16. Ideally, the DTF 13 has a transfer function, 1/H(z), which is the inverse of the transfer function H(z) of the channel 16. If the DTF's transfer function 1/H(z) is truly an exact inverse of the channel's transfer function H(z), then the DTF 13 will cancel the effects of the channel 16, and the data will be received at the receiver 14 without any distortion or ISI.
An exemplary DTF 13 is shown in FIG. 2. As shown, the DTF comprises N taps 22. (An ideal DTF would have an infinite number of taps). Each tap 22 weights a delayed contribution (Wi) to the overall output, with each tap being separated in time by a unit interval delay, ΔT, such that each Xth tap is delayed by (N-X) unit intervals. The overall output comprises the sum of the outputs of the taps, with the effect that preconditioning is added to the input data signal. Examples of DTFs and other filters or equalizers used for pre-conditioning transmitted signals to mitigate against ISI can be found in the following references, all of which are incorporated herein by reference in their entireties: R. W. Lucky et al., “Automatic equalization for digital communication,” in Proc. IEEE, vol. 53, no. 1, pp. 96-97 (January 1965); R. W. Lucky and H. R. Rudin, “Generalized automatic equalization for communication channels,” in Proc. IEEE, vol. 53, no. 3, pp. 439-440 (March 1966); S. Reynolds et al., “A 7-tap transverse analog-FIR filter in 0.13 μm CMOS for equalization of 10-Gb/s fiber-optic data systems,” in Proc. IEEE Int. Solid-State Circuits Conf., pp. 330-331 (February 2005); M. E. Said et al., “A 0.5-μm SiGe pre-equalizer for 10-Gb/s single-mode fiber optic links,” in Proc. IEEE Int. Solid-State Circuits Conf., pp. 224-225 (February 2005); and J. E. Jaussi et al., “8-Gb/s source-synchronous I/O link with adaptive receiver equalization, offset cancellation, and clock de-skew,” IEEE J. Solid-State Circuits, vol. 40, no. 1, pp. 80-88 (January 2005).
While the tap delay typically corresponds to the unit interval of the signal, that is not a requirement. In many cases, the tap delay is set to a fraction of the unit interval. While such “fractionally-spaced” filtering adds complexity to the design, and generally increases the number of taps, it also provides better control of the filtering operation. Other modifications include variable tap delay.
That said, the most common form of DTF is a simple two-tap, unit-interval-spaced filter, wherein the first tap 221 is associated with the pulse peak or as illustrated in waveform 105b of FIG. 1B, UI3. The weight of this tap is often set to unity to leave the main pulse unaltered. The weight of the second tap 222, which corresponds to UI4 in FIG. 1B, is typically given a small negative value to subtract off the first ISI term in the pulse tail. In many cases, this level of filtering is sufficient, as the first post-pulse ISI term often dominates the degradation of the overall signal. When that is not the case, however, and many ISI terms must be countered, several filter taps may be necessary.
It is also possible for ISI to occur on the front edge of the pulse, and this can also be canceled by the DTF topology under consideration, a concept best understood by returning to FIG. 2. In this case, the unity weight would be applied to one of the middle taps in the filter (e.g., 22N-2) while still corresponding to UI3 of waveform 105b in FIG. 1B. When this is done, the weights of taps 22N and 22N-1 will address post-pulse ISI (UI4-UI5), while the weights of taps 22N-3 down to tap 221 will address pre-pulse ISI (UI1-UI2).
It should also be noted that there need not be a unity gain tap weight. For example, when it is anticipated that the received pulse will be severely degraded in amplitude due to channel losses, then the tap which corresponds to the main pulse may be given a weight greater than one to boost the pulse height.
While DTFs can be a useful means to precondition data signals to combat channel-induced ISI, a DTF can be difficult to design. That is, it is not always clear the exact number of taps 22 or the corresponding weight values that should be used to compensate for a given channel. Accordingly, before one engages in constructing the DTF 13 at the transmitter 12, it is usually desirable to model and simulate the DTF 13 in light of the expected channel characteristics, with tap number and weight values determined through trial and error.
When designing such a pre-distorting filter for low-speed applications, the task of determining the optimal number of taps and the associated tap weights is simplified. This is because in such cases it is not uncommon for the channel itself to be modeled as a DTF with a finite number of taps. In this situation, designing the corresponding filter, exhibiting the inverse transfer function, is a somewhat trivial matter. Even when the channel model is more complex, as long as timing is less of a concern as it is in low-speed designs, the process of designing the optimal DTF remains relatively simple and is often carried out in mathematical tools like Matlab, independent of any component-level simulation.
High-speed systems are a different matter, in that the full analog, continuous-time nature of the signal, the channel, and the filter are all critical in the derivation of the optimal filter configuration. In addition, verifying the impact of the filter on the link performance requires circuit-level simulation to ascertain whether or not the filter has enabled error free communication, and this of course requires a waveform suitable for simulation in an industry standard simulator.
Unfortunately, modeling and simulation of the DTF is difficult. Even if the DTF is to be merely simulated, it is generally necessary to define the DTF in a layout simulator such as SPICE™. This requires transistors, resistors, and other discrete components to be electronically considered, even if they are not actually yet constructed or laid out. Such component-level consideration takes time and effort, which is particularly undesirable in an application in which one might be frequently changing the number of taps as well as the associated tap weights to try and find the most ideal transfer function 1/H(z) for the DTF to compensate for a given channel.
Furthermore, modeling and simulation may not provide a suitably accurate picture of how the DTF will process signals deviating from the ideal. Realistic data signals will not be ideal, but instead will suffer from various sources of amplitude noise and timing jitter, which noise and jitter may vary randomly between the unit intervals of the data. Regardless of the source or type of noise or jitter, it is difficult to quickly and efficiently simulate the effects of noise or jitter in the context of a DTF circuit. This inability to handle noise and jitter during simulation of the DTF circuit is especially problematic, because DTF circuits are particularly susceptible to noise and jitter, a point which is easy to understand when one considers that noise or jitter is in a sense multiplied by the various taps in the DTF.